package com.virtualightning.mvvm.tools

/**
 *  Anchor : Create by CimZzz
 *  Time : 2021/1/26 15:44:14
 *  Project : zxs-new
 *  同步码
 */
class SyncCode(private val minValue: Int = 0) {
    ///////////////////////////////////////////////////////////////////////////
    // Add by CimZzz on 2021/1/26 下午3:45
    // 内部 Code
    ///////////////////////////////////////////////////////////////////////////
    private var code: Int = minValue

    ///////////////////////////////////////////////////////////////////////////
    // Add by CimZzz on 2021/1/26 下午3:45
    // 返回当前 Code
    ///////////////////////////////////////////////////////////////////////////
    fun currentCode(): Int = code

    ///////////////////////////////////////////////////////////////////////////
    // Add by CimZzz on 2021/1/26 下午3:45
    // 返回下一个 Code
    ///////////////////////////////////////////////////////////////////////////
    fun nextCode() : Int {
        if(code >= Int.MAX_VALUE) {
            code = 0
        }
        else {
            code ++
        }
        return code
    }

    ///////////////////////////////////////////////////////////////////////////
    // Add by CimZzz on 2021/1/26 下午3:46
    // 检查同步码是否一致
    ///////////////////////////////////////////////////////////////////////////
    fun checkCode(code: Int) : Boolean = code == this.code
}